#include "processpool.hpp"
#include "Task.hpp"

// 告诉用户如何使用：先写一个 ./processpool 后面跟上你想要创建进程数目
void Usage(string proc)
{
    cout << "Usage: " << proc << " process-num " << endl;
}

// 我们自己就是 master
int main(int argc, char *argv[])
{
    if (argc != 2) // 如果进来的参数数目不为2（一个是 "./processpool"，另一个是"process-num"），说明用户使用错误，直接返回
    {
        Usage(argv[0]);
        return UsageError;
    }
    int num = stoi(argv[1]); // 获取要创建的进程数目
    ProcessPool* pp = new ProcessPool(num, Worker);

    // 1.初始化进程池
    pp->InitProcessPool();
    // 2.派发任务
    pp->DispatchTask();
    // 3.退出进程池
    pp->CleanProcessPool();

    delete pp;
    return 0; 
}